High-level programming language design for distributed computation Design rationale and language definition

نویسندگان

  • Peter Sewell
  • James J. Leifer
  • Keith Wansbrough
  • Mair Allen-Williams
  • Francesco Zappa Nardelli
  • Pierre Habouzit
  • Viktor Vafeiadis
چکیده

This paper studies key issues for distributed programming in high-level languages. We discuss the design space and describe an experimental language, Acute, which we have defined and implemented. Acute extends an OCaml core to support distributed development, deployment, and execution, allowing typesafe interaction between separately-built programs. It is expressive enough to enable a wide variety of distributed infrastructure layers to be written as simple library code above the byte-string network and persistent store APIs, disentangling the language runtime from communication. This requires a synthesis of novel and existing features: (1) type-safe marshalling of values between programs; (2) dynamic loading and controlled rebinding to local resources; (3) modules and abstract types with abstraction boundaries that are respected by interaction; (4) global names, generated either freshly or based on module hashes: at the type level, as runtime names for abstract types; and at the term level, as channel names and other interaction handles; (5) versions and version constraints, integrated with type identity; (6) local concurrency and thread thunkification; and (7) second-order polymorphism with a namecase construct. We deal with the interplay among these features and the core, and develop a semantic definition that tracks abstraction boundaries, global names, and hashes throughout compilation and execution, but which still admits an efficient implementation strategy. Key-words: programming languages, distributed programming, marshalling, serialisation, abstract types, modules, rebinding, version control, type theory, ML

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Acute: High-level programming language design for distributed computation : Design rationale and language definition

This paper studies key issues for distributed programming in high-level languages. We discuss the design space and describe an experimental language, Acute, which we have defined and implemented. Acute extends an OCaml core to support distributed development, deployment, and execution, allowing typesafe interaction between separately-built programs. It is expressive enough to enable a wide vari...

متن کامل

Designing a Language for Spatial Computing

We present the design rationale underlying a language for spatial computing and sketch a prototypical implementation in Python. The goal of this work is to provide a high-level language for spatial computing that is executable on existing commercial and open source spatial computing platforms, particularly Geographic Information Systems (GIS). The key idea of the approach is to target an abstra...

متن کامل

SDL: A Dataflow Language for Component Composition and Programming-in-the-Large

This paper proposes a new framework for high-level component-based software development that is based on the dataflow model of computation and dataflow diagrams. A component composition language, called SDL, that supports both top-down system specification and design through multiple levels of abstraction as well as bottom-up system assembly by coupling a collection of previously defined, highl...

متن کامل

A Language for Compositional Programming: a Rationale and Design

A rationale and description of a language for exploratory and educational programming in a compositional style is presented. By ‘compositional’ a functional programming style is meant where the computation is a hierarchy of function compositions and applications. One of the datatypes of the language is that of the geometrical figures that can be obtained by simple rules of spatial correlation, ...

متن کامل

Java Layers Compiler Design

This document contains a brief overview of the JL compiler’s design (version 2) [4]. The compiler supports bounded parametric classes and interfaces, mixins, static virtual typing, deep conformance, constructor propagation, and the class flattening optimization. The intent of this document is to provide a basis for an implementation plan, so we provide the detail needed to gauge the development...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004